//钱币找零: 假设1元、2元、5元、10元、20元、50元、100元的纸币分别有c0, c1, c2, c3, c4, c5, c6张。现在要用这些钱来支付K
元，至少要用多少张纸币？

#include <algorithm>
#include <iostream>
using namespace std;
int solve(int money, const vector<pair<int, int>>& moneyCount) {
    int num = 0;
    // 首先选择最大面值的纸币
    for (int i = moneyCount.size() - 1; i >= 0; i--) 
    {
        // 需要的当前面值与面值数量取最小
        int c = min(money / moneyCount[i].first, moneyCount[i].second);
        money = money - c * moneyCount[i].first;
        num += c;
    }
    if (money > 0)
        num = -1;
    return num;
}